package com.ygxsk.carhome.ui.care;

import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;

import com.afollestad.materialdialogs.MaterialDialog;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.blankj.utilcode.util.AppUtils;
import com.blankj.utilcode.util.ColorUtils;
import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.NetworkUtils;
import com.bumptech.glide.Glide;
import com.flyco.roundview.RoundTextView;
import com.gyf.immersionbar.ImmersionBar;
import com.lxj.xpopup.core.BasePopupView;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.scwang.smart.refresh.layout.api.RefreshLayout;
import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.ygxsk.carhome.R;
import com.ygxsk.carhome.constant.ConstantApi;
import com.ygxsk.carhome.constant.ConstantSign;
import com.ygxsk.carhome.constant.ExtraKey;
import com.ygxsk.carhome.constant.ExtraValue;
import com.ygxsk.carhome.enumwrap.CallHistoryBusinessType;
import com.ygxsk.carhome.enumwrap.CouponAuditPermissions;
import com.ygxsk.carhome.enumwrap.CouponAuditStatus;
import com.ygxsk.carhome.event.EventCardMain;
import com.ygxsk.carhome.listener.DoSomeThingListener;
import com.ygxsk.carhome.listener.ErrorParentExtraSingle;
import com.ygxsk.carhome.response.CouponCustomerVoCopy;
import com.ygxsk.carhome.response.CouponInfoDetail;
import com.ygxsk.carhome.retrofit.AddLogUpLoadInfo;
import com.ygxsk.carhome.retrofit.ApiException;
import com.ygxsk.carhome.retrofit.ApiRequestSubListener;
import com.ygxsk.carhome.retrofit.ApiService;
import com.ygxsk.carhome.retrofit.ErrorConsumer;
import com.ygxsk.carhome.retrofit.NetworkManager;
import com.ygxsk.carhome.retrofit.ResponseTransformer;
import com.ygxsk.carhome.ui.ErrorActivity;
import com.ygxsk.carhome.utils.CommUtils;
import com.ygxsk.carhome.utils.StringCodeUtils;
import com.ygxsk.carhome.views.FJEditTextCountPublishTooSmall;
import com.ygxsk.integrated.retrofit.Parameterkey;

import org.greenrobot.eventbus.EventBus;

import java.util.HashMap;

import butterknife.BindView;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.Consumer;
import okhttp3.MediaType;
import okhttp3.RequestBody;

public class CardCouponDetailActivity extends ErrorActivity implements ErrorParentExtraSingle {


    @BindView(R.id.refreshlayoutcarddedetail)
    SmartRefreshLayout refreshLayoutCardDetail;

    //卡券名称
    @BindView(R.id.textviewcarnamedetai)
    TextView textViewCarNameDetai;

    //卡券类型
    @BindView(R.id.textviewcardtype)
    TextView textViewCardType;

    //使用条件
    @BindView(R.id.textviewcarduserkonw)
    TextView textViewCardUserKonw;

    //限制车牌
    @BindView(R.id.textviewcoupon_license)
    TextView textViewCouponLicense;

    //客户姓名
    @BindView(R.id.textvieweditviewnamesmart)
    TextView textViewNameDetai;

    //客户电话
    @BindView(R.id.textvieweditviewphonedetai)
    TextView textViewPhoneDetai;

    //卡券发放人
    @BindView(R.id.textviewepushperson)
    TextView textViewPhonePushPerson;

    //卡券发放时间
    @BindView(R.id.textviewepushtime)
    TextView textViewPhonePushTime;

    //卡券发放时间
    @BindView(R.id.textviewepushreason)
    TextView textViewePushReason;

    //审核的外侧逻辑包裹
    @BindView(R.id.linearlayoutauditcontent)
    LinearLayout linearLayoutAuditContent;

    //审核人
    @BindView(R.id.textviewedistperson)
    TextView textViewDistPerson;

    //审核时间
    @BindView(R.id.textviewedisttime)
    TextView textViewDistTime;

    //审核备注
    @BindView(R.id.textviewdistremark)
    TextView textViewDistRemark;


    //核销的外侧逻辑包裹
    @BindView(R.id.linearlayoutverificationcontent)
    LinearLayout linearLayoutVerificationContent;

    //核销人
    @BindView(R.id.textviewverificationperson)
    TextView textViewVerificationPerson;

    //核销时间
    @BindView(R.id.textvieweverificationtime)
    TextView textVieweVerificationTime;

    //审核按钮
    @BindView(R.id.roundbuttoaddaudit)
    RoundTextView roundButtonAddAudit;

    //图片的状态图片
    @BindView(R.id.imageintopitemstamp)
    ImageView imageInTopItemStamp;

    //底部撑起一个高度的帮助布局，因为审核人有贴边
//    @BindView(R.id.textviewcoudetail_help)
//    TextView textViewCouDetailHelp;


    //添加优惠券拷贝过来的数据
    private CouponCustomerVoCopy extra_couponCustomerVoCopy;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mActivityInstance = this;

        processExtraData();

        initloading();

        initViews();

        gainDatas();

//        需要当前列表的自己刷新；
//        if (!EventBus.getDefault().isRegistered(this)) {
//            EventBus.getDefault().register(this);
//        }

    }

    @Override
    protected int getContentViewId() {
        return R.layout.activity_card_coupon_detail;
    }

    @Override
    protected void initImmersionBar() {
        super.initImmersionBar();

        ImmersionBar.with(this)//
                .titleBar(R.id.toolbarygxskout)
                .fitsSystemWindows(true)//解决状态栏和布局重叠问题，任选其一，默认为false，当为true时一定要指定statusBarColor()，不然状态栏为透明色，还有一些重载方法
                //.statusBarColor(R.color.colorPrimary)//
                //.navigationBarColor(R.color.colorPrimary)//
                //.keyboardEnable(true)
                .init();

    }

    @Override
    protected void initToolBar(ToolbarHelper toolbarHelper) {

        toolbarHelper.setTitle(getString(R.string.coupon_detail_manager));
        toolbarHelper.setVersionName(true, AppUtils.getAppVersionName());
        toolbarHelper.setLayoutClose(false, "", null);
        toolbarHelper.setLayoutLeft(true, R.drawable.backicon, new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //搜索客户信息，优先关闭软键盘
                KeyboardUtils.hideSoftInput(mActivityInstance);
                methodBack();
            }
        });

        //右侧的内容
        toolbarHelper.setLayoutRight(false, 0, "", null);

        //添加潜在客户的按钮
//        toolbarHelper.setLayoutRight(true, 1, "预约记录", new ClickUtils.OnDebouncingClickListener() {
//            @Override
//            public void onDebouncingClick(View v) {
//
//                //快速双加的限制，
//                Bundle extra_bundle = new Bundle();
//                ActivityUtils.startActivity(extra_bundle, RepairHistoryActivity.class);
//
//            }
//        });


    }

    @Override
    protected void onClickNodata(View v) {

        gainDatas();

    }

    @Override
    protected void initViews() {

        //
        if (roundButtonAddAudit != null) {

            roundButtonAddAudit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    //审核的逻辑
                    //"couponCustomerId": 62986, //发放的优惠券记录主键Id
                    //"couponId": 1, //优惠券主键Id
                    //"auditStatus": 1 //审核状态 0：待审核 1：审核通过 2：审核不通过
//                    method_gainVerifySubmitInfo_upLoad(couponCustomerVo.getCouponCustomerId(), couponCustomerVo.getCouponId(), couponCustomerVo.getAuditStatus());

                    //一个弹窗信息
                    method_audit_dialog_customer();

                }
            });
        }

        if (refreshLayoutCardDetail != null) {
            refreshLayoutCardDetail.setOnRefreshListener(new OnRefreshListener() {
                @Override
                public void onRefresh(@NonNull RefreshLayout refreshLayout) {

                    refreshLayout.getLayout().post(new Runnable() {
                        @Override
                        public void run() {

                            getServerDatas();

                            refreshLayout.finishRefresh();

                        }
                    });

                }
            });
        }

        //底部一个撑起高度
//        CommUtils.methodHelpView4(textViewCouDetailHelp);

    }

    //审核通过是1 审核不通过是0；
    private int button_passOrRefuse = -1;
    private String editViewContentAudit = "";
    private MaterialDialog materialDialogCustomView;
    private BasePopupView mAlertBasePopupView;

    //优惠券审核的弹窗
    private void method_audit_dialog_customer() {

        //弹窗布局
        View viewCard = View.inflate(mActivityInstance, R.layout.cardcouponauditdialog, null);

        if (viewCard != null) {

//            RoundTextView textViewAuditPass = (RoundTextView) viewCard.findViewById(R.id.textviewauditpass);
//            RoundTextView textViewAuditRefuse = (RoundTextView) viewCard.findViewById(R.id.textviewauditrefuse);

            RadioGroup radioGroupCheckAuditStatus = (RadioGroup) viewCard.findViewById(R.id.radioGroupCheckAuditStatus);
            RadioButton radioButtonChoosePass = (RadioButton) viewCard.findViewById(R.id.radiaoButtonChoosePass);
            RadioButton radioButtonChooseNotPass = (RadioButton) viewCard.findViewById(R.id.radiaoButtonChooseNotPass);

            FJEditTextCountPublishTooSmall editViewContentAuditReasonPopu = (FJEditTextCountPublishTooSmall) viewCard.findViewById(R.id.editviewcontentaudioreasonpopu);

            //取消 和 确定按钮
            RoundTextView textViewModifyChange = (RoundTextView) viewCard.findViewById(R.id.textviewmodifychange);
            //提交按钮
            RoundTextView textViewSubmit = (RoundTextView) viewCard.findViewById(R.id.textviewcomplete);

            //确定-审核通过
//            textViewAuditPass.setOnClickListener(new View.OnClickListener() {
//                @Override
//                public void onClick(View v) {
//
//                    //审核通过，可以不要原因.
//                    button_passOrRefuse = 1;
//
//                    //确定 -选中
//                    CommUtils.RoundTextViewButtonRed(textViewAuditPass);
//                    //驳回 不选中
//                    CommUtils.RoundTextViewButtonWhite(textViewAuditRefuse);
//
//                    LogUtils.d(ConstantSign.LOGCAT_NOMAL + "选中了【审核通过】");
//
//                }
//            });

            //驳回-审核不通过
//            textViewAuditRefuse.setOnClickListener(new View.OnClickListener() {
//                @Override
//                public void onClick(View v) {
//
//                    //审核通过，可以不要原因
//                    //审核不通过，必须填写原因
//                    button_passOrRefuse = 0;
//
//                    //确定 -不选中
//                    CommUtils.RoundTextViewButtonWhite(textViewAuditPass);
//                    //驳回 选中
//                    CommUtils.RoundTextViewButtonRed(textViewAuditRefuse);
//
//                    LogUtils.d(ConstantSign.LOGCAT_NOMAL + "选中了【审核驳回】");
//
//                }
//            });

            radioGroupCheckAuditStatus.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(RadioGroup group, int checkedId) {

                    if (checkedId == R.id.radiaoButtonChoosePass) {//审核 通过
                        LogUtils.d(ConstantSign.LOGCAT_NOMAL + "选中了【审核通过】");

                        //审核通过，可以不要原因.
                        button_passOrRefuse = 1;


                    } else if (checkedId == R.id.radiaoButtonChooseNotPass) {//审核驳回
                        LogUtils.d(ConstantSign.LOGCAT_NOMAL + "选中了【审核驳回】");

//                    //审核不通过，必须填写原因
                        button_passOrRefuse = 0;


                    }

                }
            });

            //取消按钮
            textViewModifyChange.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    button_passOrRefuse = -1;
                    editViewContentAuditReasonPopu.setText("");

                    //确定 按钮重置白色
//                    CommUtils.RoundTextViewButtonWhite(textViewAuditPass);
                    //驳回 按钮重置白色
//                    CommUtils.RoundTextViewButtonWhite(textViewAuditRefuse);

                    //将两个勾选都重置为空白
                    radioButtonChoosePass.setChecked(false);
                    radioButtonChooseNotPass.setChecked(false);

                    CommUtils.checkMaterialDialog(materialDialogCustomView);
                    CommUtils.checkBasePopupView(mAlertBasePopupView);

                }
            });

//            public enum CouponAuditStatus {
//                //"auditStatus": 0, //审核状态 0：待审核 1：审核通过 2：审核不通过
//                AUDITSTATUS_TO_BE_REVIEWED(0, "待审核"),
//                AUDITSTATUS_REVIEWED(1, "审核通过"),//已审核
//                AUDITSTATUS_REVIEWE_NOT_PASS(2, "审核不通过"),//审核不通过
//                AUDITSTATUS_HAS_DIST(3, "已核销");//已核销-和其他的都不一样,不是后台给的，是我自己的人为自定义的。

            //确定按钮
            textViewSubmit.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    //消息提示
                    CommUtils.checkBasePopupView(mAlertBasePopupView);

                    editViewContentAudit = editViewContentAuditReasonPopu.getText().toString().trim();

                    //如果是审核通过，可以不用填写原因。
                    if (button_passOrRefuse == 1) {

                        //如果是【审核通过】那么立即关闭当前页面。
                        CommUtils.checkMaterialDialog(materialDialogCustomView);
                        //审核通过
                        LogUtils.d(ConstantSign.LOGCAT_NOMAL + "是审核通过，直接过去，不用填写原因");

                        method_gainVerifySubmitInfo_upLoad(extra_couponCustomerVoCopy.getCouponCustomerId(), CouponAuditStatus.AUDITSTATUS_REVIEWED.getIndex(), editViewContentAudit);

                    } else if (button_passOrRefuse == 0) {

                        //审核被驳回，必须填写原因。
                        editViewContentAudit = editViewContentAuditReasonPopu.getText().toString().trim();

                        if (TextUtils.isEmpty(editViewContentAudit)) {//车辆类型 是必填项 2023-8-24 18:14:55
//
//                            CommUtils.checkDialog(mAlertView);
//                            mAlertView = CommUtils.method_showAlertViewSingleSlowly(mActivityInstance, ConstantSign.ALERT_TITLE, getString(R.string.check_input_audit_reason), true);
//                            mAlertView.show();

                            CommUtils.checkBasePopupView(mAlertBasePopupView);
                            mAlertBasePopupView = CommUtils.method_showBasePopupViewSingle(CardCouponDetailActivity.this, //
                                    CardCouponDetailActivity.this,//
                                    CardCouponDetailActivity.this.getString(R.string.check_input_audit_reason));//

                            return;
                        }

                        //如果是【审核通过】那么立即关闭当前页面。
                        CommUtils.checkMaterialDialog(materialDialogCustomView);

                        method_gainVerifySubmitInfo_upLoad(extra_couponCustomerVoCopy.getCouponCustomerId(), CouponAuditStatus.AUDITSTATUS_REVIEWE_NOT_PASS.getIndex(), editViewContentAudit);

                    } else if (button_passOrRefuse == -1) {

                        LogUtils.d(ConstantSign.LOGCAT_NOMAL + "什么都没勾选？那末拦截他");

                        if (!radioButtonChoosePass.isChecked() && !radioButtonChooseNotPass.isChecked()) {

                            CommUtils.checkBasePopupView(mAlertBasePopupView);
                            mAlertBasePopupView = CommUtils.method_showBasePopupViewSingle(CardCouponDetailActivity.this, //
                                    CardCouponDetailActivity.this,//
                                    CardCouponDetailActivity.this.getString(R.string.check_choose_audit_button));//

                            return;
                        }

                        if (TextUtils.isEmpty(editViewContentAudit)) {//车辆类型 是必填项 2023-8-24 18:14:55

//                            CommUtils.checkDialog(mAlertView);
//                            mAlertView = CommUtils.method_showAlertViewSingleSlowly(mActivityInstance, ConstantSign.ALERT_TITLE, getString(R.string.check_choose_audit_button), true);
//                            mAlertView.show();

                            CommUtils.checkBasePopupView(mAlertBasePopupView);
                            mAlertBasePopupView = CommUtils.method_showBasePopupViewSingle(CardCouponDetailActivity.this, //
                                    CardCouponDetailActivity.this,//
                                    CardCouponDetailActivity.this.getString(R.string.check_input_audit_reason));//

                            return;
                        }

                    }

                }
            });


            //激发 弹窗弹出内容
            materialDialogCustomView = new MaterialDialog.Builder(CardCouponDetailActivity.this)
                    .customView(viewCard, false)
                    .contentColor(ColorUtils.getColor(R.color.buttonnomcolor))//
                    //.positiveText("确定")
                    .positiveColor(ColorUtils.getColor(R.color.dark))
                    //.negativeText("取消")
                    .canceledOnTouchOutside(false)
                    .show();

        }

    }

    @Override
    protected void gainDatas() {

        if (NetworkUtils.isConnected()) {

            getServerDatas();

        } else {

            //是否有其他的执行逻辑？
            netWorkError();

        }

    }

    private void getServerDatas() {

        HashMap<String, Object> map = new HashMap<>();

        map.put(Parameterkey.shopInfoId, mSession.getShopInfoId());

        if (extra_couponCustomerVoCopy != null) {
            map.put(Parameterkey.couponCustomerId, extra_couponCustomerVoCopy.getCouponCustomerId());//状态
        }

//        map.put(Parameterkey.status, RepairStatusUpLoadType.STATE_HAS_DISPATCH.getIndex());//状态

        AddLogUpLoadInfo addLogUpLoadInfo = new AddLogUpLoadInfo();
        addLogUpLoadInfo.setActivity(mActivityInstance);
        addLogUpLoadInfo.setWhat(ConstantApi.WHAT_GETCUSTOMERCOUPONINFO);
        addLogUpLoadInfo.setUrlPath(ApiService.getCustomerCouponInfo_url);
        addLogUpLoadInfo.setRequestMethod(ConstantSign.REQUEST_METHOD_POST);
        addLogUpLoadInfo.setToastToUser(true);//展示给用户的标志
        addLogUpLoadInfo.setHashMapParameter(map);

        NetworkManager.getInstance().initRetrofitRxJava()
                .create(ApiService.class)
                .getCustomerCouponInfo(RequestBody.create(JSON.toJSONString(map, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue),
                        MediaType.parse(ApiService.HEADER_JSON)))
                .compose(CardCouponDetailActivity.this.bindUntilEvent(ActivityEvent.DESTROY))//
                .compose(new ResponseTransformer<>(addLogUpLoadInfo, new ApiRequestSubListener<CouponInfoDetail>() {
                    @Override
                    public void handlerSomeThingNotSuccessDataForItSelf(int what_method, String serverCode, String serverMessage) {
                        super.handlerSomeThingNotSuccessDataForItSelf(what_method, serverCode, serverMessage);

                        methodNotSuccessData(what_method, serverCode, serverMessage);

                    }
                })).doOnSubscribe(new Consumer<Disposable>() {
                    @Override
                    public void accept(Disposable disposable) throws Throwable {

                        loadingGone();

                    }
                }).subscribe(new Consumer<CouponInfoDetail>() {
                    @Override
                    public void accept(CouponInfoDetail couponInfoDetail) throws Throwable {

                        if (couponInfoDetail != null) {

                            extra_couponCustomerVoCopy.setIsExamine(couponInfoDetail.getIsExamine());

                            method_handler_success(couponInfoDetail);

                            method_handler_roundBottonAudit();

                        } else {

                            //

                        }

                    }
                }, new ErrorConsumer() {

                    @Override
                    protected void error(ApiException apiException) {

                        //页面报错；
                        function_apiException(apiException);

                    }
                });

    }


    @Override
    public void methodNotSuccessData(int what_method, String serverCode, String serverMessage) {
        super.methodNotSuccessData(what_method, serverCode, serverMessage);

        switch (what_method) {

            case ConstantApi.WHAT_GETCUSTOMERCOUPONINFO: {

                //如果是无数据或者其他报错 ，那审核按钮是肯定不展示的
                CommUtils.setViewGone(roundButtonAddAudit);

                break;
            }

            default:
                break;
        }

    }

    //处理圆角按钮 审核的 逻辑
    private void method_handler_roundBottonAudit() {

        //     public enum CouponAuditStatus {//特别注意，【已核销】是我自己自定义的
//            "auditStatus": 0, //审核状态 0：待审核 1：审核通过 2：审核不通过
//            AUDITSTATUS_TO_BE_REVIEWED(0, "待审核"),
//            AUDITSTATUS_REVIEWED(1, "审核通过"),//已审核
//            AUDITSTATUS_REVIEWE_NOT_PASS(2, "审核不通过"),//审核不通过--即是【已驳回】的状态。
//            AUDITSTATUS_HAS_DIST(3, "已核销");//已核销-和其他的都不一样,不是后台给的，是我自己的人为自定义的。
        if (flag_jumpfrom_where == CouponAuditStatus.AUDITSTATUS_HAS_DIST.getIndex()//已核销
                || flag_jumpfrom_where == CouponAuditStatus.AUDITSTATUS_REVIEWED.getIndex()) {//

            //【已核销】+【待审核】是必须的不展示图片。
            roundButtonAddAudit.setVisibility(View.GONE);

        } else if (flag_jumpfrom_where == ExtraValue.VALUE_JUMP_FORM_CARDCOUPONPACK_DETAIL_ACTIVITY) {

            roundButtonAddAudit.setVisibility(View.GONE);

        } else {

            //设置审核按钮的显示或者隐藏逻辑
            //如果需要审核，那么审核按钮显示：
            //是否可以审核（权限）1是0否
            int isExamine = extra_couponCustomerVoCopy.getIsExamine();
            //是否是大礼包类型的，大礼包类型。 "packType": 2, //1：优惠券； 2:礼包
//           int packType = extra_couponCustomerVoCopy.getPackType();

            if (isExamine == CouponAuditPermissions.TYPE_NO_EXAMINE.getIndex()) {

                roundButtonAddAudit.setVisibility(View.GONE);

            } else if (isExamine == CouponAuditPermissions.TYPE_YES_EXAMINE.getIndex()) {

                roundButtonAddAudit.setVisibility(View.VISIBLE);

            } else {

                roundButtonAddAudit.setVisibility(View.GONE);

            }


        }

    }

    private void method_handler_success(CouponInfoDetail _couponInfoDetail) {

        //卡券名称
        String couponName = _couponInfoDetail.getCouponName();
        //卡券类型的值
//        int couponType = _couponInfoDetail.getCouponType();
        //卡券类型的文本描述
        String couponTypeInfo = _couponInfoDetail.getCouponTypeInfo();
        //使用条件
        String couponLowAmountInfo = _couponInfoDetail.getCouponLowAmountInfo();
        //限制车牌
        String carNo = _couponInfoDetail.getCarNo();
        //卡券描述
        String couponDetail = _couponInfoDetail.getCouponDetail();


        //领取客户--姓名  2024-3-3 09:51:46改为truename
        String userName = _couponInfoDetail.getTrueName();
        //领取客户--手机号
        String phone = _couponInfoDetail.getPhone();


        //发放人
        String createCustomerName = _couponInfoDetail.getCreateCustomerName();
        //发送时间
        String createTime = _couponInfoDetail.getCreateTime();
        //发放原因
        String explain = _couponInfoDetail.getExplain();


        //审核状态
        int auditStatus = _couponInfoDetail.getAuditStatus();
        //审核状态的值内容
        String auditStatusName = _couponInfoDetail.getAuditStatusName();

        //审核人
        String auditCustomerName = _couponInfoDetail.getAuditCustomerName();
        //审核时间
        String auditTime = _couponInfoDetail.getAuditTime();
        //审核备注
        String auditRemark = _couponInfoDetail.getAuditRemark();

        //卡券的核销状态
        //核销人
        String managerName = _couponInfoDetail.getManagerName();
        //核销时间
        String managerTime = _couponInfoDetail.getManagerTime();

//        Delivery.getInstance().post(new Runnable() {
//            @Override
//            public void run() {

        //卡券名称
        CommUtils.setText(textViewCarNameDetai, couponName);
        //卡券类型
        CommUtils.setText(textViewCardType, couponTypeInfo);
        //使用条件
        CommUtils.setText(textViewCardUserKonw, couponLowAmountInfo);
        //限制车牌
        CommUtils.setText(textViewCouponLicense, carNo);
        //卡券描述？？
        // TODO: 2024/2/29 17:31 卡券描述


        //客户姓名
        CommUtils.setText(textViewNameDetai, userName);
        //客户电话 明文的
//                CommUtils.setText(textViewPhoneDetai, phone);
        //客户电话 密文的
        CommUtils.setText(textViewPhoneDetai, StringCodeUtils.mobileEncrypt(phone));

        //并且此时赋予电话的拨打能力
        textViewPhoneDetai.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                clickButton_toCallPhone(CardCouponDetailActivity.this, phone, CallHistoryBusinessType.BUSINESSTYPE_9.getIndex());

            }
        });

        //发放人的信息
        CommUtils.setText(textViewPhonePushPerson, createCustomerName);
        //卡券发放时间
        CommUtils.setText(textViewPhonePushTime, createTime);
        //卡券发放原因
        CommUtils.setText(textViewePushReason, explain);

        //-------------------------------------------------------------------------------------------------

        //审核状态，控制是否显示审核人信息
        //"auditStatus": 0, //审核状态 0：待审核 1：审核通过 2：审核不通过
//                enum CouponAuditStatus {
//                    //"auditStatus": 0, //审核状态 0：待审核 1：审核通过 2：审核不通过
//                    AUDITSTATUS_TO_BE_REVIEWED(0, "待审核"),
//                    AUDITSTATUS_REVIEWED(1, "审核通过"),//已审核
//                    AUDITSTATUS_REVIEWE_NOT_PASS(2, "审核不通过"),//审核不通过
//                    AUDITSTATUS_HAS_DIST(3, "已核销");//已核销-和其他的都不一样,不是后台给的，是我自己的人为自定义的。
        if (auditStatus == CouponAuditStatus.AUDITSTATUS_TO_BE_REVIEWED.getIndex()) {

            //如果是待审核状态，那么审核的布局 不能展示，因为还没审核过，信息是空
            CommUtils.setViewGone(linearLayoutAuditContent);

        } else {

            CommUtils.setViewVisible(linearLayoutAuditContent);

            //审核人
            CommUtils.setText(textViewDistPerson, auditCustomerName);

            //审核时间
            CommUtils.setText(textViewDistTime, auditTime);
            //审核备注
            CommUtils.setText(textViewDistRemark, auditRemark);

        }

        //-------------------------------------------------------------------------------------------------

        //核销状态，控制是否显示核销人.
        //"auditStatus": 0, //审核状态 0：待审核 1：审核通过 2：审核不通过
//                enum CouponAuditStatus {
//                    //"auditStatus": 0, //审核状态 0：待审核 1：审核通过 2：审核不通过
//                    AUDITSTATUS_TO_BE_REVIEWED(0, "待审核"),
//                    AUDITSTATUS_REVIEWED(1, "审核通过"),//已审核
//                    AUDITSTATUS_REVIEWE_NOT_PASS(2, "审核不通过"),//审核不通过
//                    AUDITSTATUS_HAS_DIST(3, "已核销");//已核销-和其他的都不一样,不是后台给的，是我自己的人为自定义的。
//
        // TODO: 2024/2/29 19:05 那种状态是已核销？
        //判断是否  核销  只能用  flag_jumpfrom_where 判断，因为核销是一个自定义的状态。
        if (flag_jumpfrom_where == CouponAuditStatus.AUDITSTATUS_HAS_DIST.getIndex()) {

            //是【已核销】过来的，那么必须展示 已核销
            CommUtils.setViewVisible(linearLayoutVerificationContent);

            //核销人
            CommUtils.setText(textViewVerificationPerson, managerName);
            //核销时间
            CommUtils.setText(textVieweVerificationTime, managerTime);

        } else {

            CommUtils.setViewGone(linearLayoutVerificationContent);

        }

        //-------------------------------------------------------------------------------------------------

        //优惠券的图片的审核状态
        if (imageInTopItemStamp != null) {

            //"auditStatus": 0, //审核状态 0：待审核 1：审核通过 2：审核不通过
//                    enum CouponAuditStatus {
//                    //"auditStatus": 0, //审核状态 0：待审核 1：审核通过 2：审核不通过
//                    AUDITSTATUS_TO_BE_REVIEWED(0, "待审核"),
//                    AUDITSTATUS_REVIEWED(1, "审核通过"),//已审核
//                    AUDITSTATUS_REVIEWE_NOT_PASS(2, "审核不通过"),//审核不通过
//                    AUDITSTATUS_HAS_DIST(3, "已核销");//已核销-和其他的都不一样,不是后台给的，是我自己的人为自定义的。

            if (auditStatus == CouponAuditStatus.AUDITSTATUS_TO_BE_REVIEWED.getIndex()) {//待审核

                //待审核的逻辑，那么图片是隐藏的
                CommUtils.setViewGone(imageInTopItemStamp);

            } else if (auditStatus == CouponAuditStatus.AUDITSTATUS_REVIEWED.getIndex()) {//已经审核了 并且审核通过，

                CommUtils.setViewVisible(imageInTopItemStamp);

//                        public enum CouponAuditStatus {//特别注意，【已核销】是我自己自定义的
                //"auditStatus": 0, //审核状态 0：待审核 1：审核通过 2：审核不通过
//                            "auditStatus": 0, //审核状态 0：待审核 1：审核通过 2：审核不通过
//                            AUDITSTATUS_TO_BE_REVIEWED(0, "待审核"),
//                            AUDITSTATUS_REVIEWED(1, "审核通过"),//已审核
//                            AUDITSTATUS_REVIEWE_NOT_PASS(2, "审核不通过"),//审核不通过--即是【已驳回】的状态。
//                            AUDITSTATUS_HAS_DIST(3, "已核销");//已核销-和其他的都不一样,不是后台给的，是我自己的人为自定义的。

                //额外一层判断，如果是审核通过过来的，那么展示【审核通过】
                //如果是 已核销 过来的，那么展示【已核销】
                if (flag_jumpfrom_where == CouponAuditStatus.AUDITSTATUS_HAS_DIST.getIndex()) {

                    //已经审核通过了，并且是【已核销过来的】
                    Glide.with(CardCouponDetailActivity.this.getBaseContext())
                            .load(R.drawable.icon_redist)
                            .centerInside()//
                            .error(ContextCompat.getDrawable(CardCouponDetailActivity.this.getBaseContext(), R.drawable.icon_errorfang))
                            .placeholder(ContextCompat.getDrawable(CardCouponDetailActivity.this.getBaseContext(), R.drawable.icon_errorfang))
                            .fallback(ContextCompat.getDrawable(CardCouponDetailActivity.this.getBaseContext(), R.drawable.icon_errorfang))
                            .into(imageInTopItemStamp);


                } else if (flag_jumpfrom_where == CouponAuditStatus.AUDITSTATUS_REVIEWED.getIndex()) {

                    //已经审核了，审核通过

                    Glide.with(CardCouponDetailActivity.this.getBaseContext())
                            .load(R.drawable.icon_recied)
                            .centerInside()//
                            .error(ContextCompat.getDrawable(CardCouponDetailActivity.this.getBaseContext(), R.drawable.icon_errorfang))
                            .placeholder(ContextCompat.getDrawable(CardCouponDetailActivity.this.getBaseContext(), R.drawable.icon_errorfang))
                            .fallback(ContextCompat.getDrawable(CardCouponDetailActivity.this.getBaseContext(), R.drawable.icon_errorfang))
                            .into(imageInTopItemStamp);

                } else {

                    //

                }


            } else if (auditStatus == CouponAuditStatus.AUDITSTATUS_REVIEWE_NOT_PASS.getIndex()) {//审核了 但是审核不通过-即是审核驳回

                CommUtils.setViewVisible(imageInTopItemStamp);

                Glide.with(CardCouponDetailActivity.this.getBaseContext())
                        .load(R.drawable.icon_renopas)
                        .centerInside()//
                        .error(ContextCompat.getDrawable(CardCouponDetailActivity.this.getBaseContext(), R.drawable.icon_errorfang))
                        .placeholder(ContextCompat.getDrawable(CardCouponDetailActivity.this.getBaseContext(), R.drawable.icon_errorfang))
                        .fallback(ContextCompat.getDrawable(CardCouponDetailActivity.this.getBaseContext(), R.drawable.icon_errorfang))
                        .into(imageInTopItemStamp);

            } else {

                LogUtils.d(ConstantSign.LOGCAT_NOMAL + "不满足以上任何状态，需要隐藏图片的逻辑");

                //这种是额外其他状态，让图片隐藏
                CommUtils.setViewGone(imageInTopItemStamp);

//                        Glide.with(CardCouponDetailActivity.this.getBaseContext())
//                                .load(R.drawable.icon_recied)
//                                .centerInside()//
//                                .error(ContextCompat.getDrawable(CardCouponDetailActivity.this.getBaseContext(), R.drawable.icon_errorfang))
//                                .placeholder(ContextCompat.getDrawable(CardCouponDetailActivity.this.getBaseContext(), R.drawable.icon_errorfang))
//                                .fallback(ContextCompat.getDrawable(CardCouponDetailActivity.this.getBaseContext(), R.drawable.icon_errorfang))
//                                .into(imageInTopItemStamp);

            }


        }

//            }
//        });


    }

    //优惠券的发放历史的审核状态；
    private void method_gainVerifySubmitInfo_upLoad(Integer _couponCustomerId, int _status_has_verify, String _auditRemark) {

//        {
//                "couponCustomerId": 62986, //发放的优惠券记录主键Id
//                "couponId": 1, //优惠券主键Id
//                "auditStatus": 1 //审核状态 0：待审核 1：审核通过 2：审核不通过
//        }

//        CardAuditStatus {
//                    //审核状态 0：待审核 1：审核通过 2：审核不通过
//                    STATUS_NOT_VERIFY("0", "待审核"),
//                    STATUS_HAS_VERIFY("1", "审核通过"),
//                    STATUS_CANNOT_VERIFY("2", "审核不通过");
//        map.put(Parameterkey.couponId, _couponId);


        HashMap<String, Object> map = new HashMap<>();
        map.put(Parameterkey.couponCustomerId, _couponCustomerId);//
        map.put(Parameterkey.auditStatus, _status_has_verify);//审核状态
        map.put(Parameterkey.auditRemark, _auditRemark);

        AddLogUpLoadInfo addLogUpLoadInfo = new AddLogUpLoadInfo();
        addLogUpLoadInfo.setActivity(mActivityInstance);
        addLogUpLoadInfo.setWhat(ConstantApi.WHAT_UPDATEAUDITSTATUS_URL);//请求数字标识
        addLogUpLoadInfo.setUrlPath(ApiService.updateAuditStatus_url);//url地址
        addLogUpLoadInfo.setRequestMethod(ConstantSign.REQUEST_METHOD_POST);//POST 或者 GET
        addLogUpLoadInfo.setToastToUser(true);//展示给用户的标志
        addLogUpLoadInfo.setAlertToUser(true);
        addLogUpLoadInfo.setHashMapParameter(map);

        NetworkManager.getInstance().initRetrofitRxJava()
                .create(ApiService.class)
                .updateAuditStatus(RequestBody.create(JSON.toJSONString(map, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue),
                        MediaType.parse(ApiService.HEADER_JSON)))
                .compose(CardCouponDetailActivity.this.bindUntilEvent(ActivityEvent.DESTROY))//
                .compose(new ResponseTransformer<>(addLogUpLoadInfo, new ApiRequestSubListener<String>() {
                    @Override
                    public void handlerSomeThingNotSuccessDataForItSelf(int what_method, String serverCode, String serverMessage) {
                        super.handlerSomeThingNotSuccessDataForItSelf(what_method, serverCode, serverMessage);

//                        if (!TextUtils.isEmpty(serverMessage)) {
//                            PopTip.show(serverMessage).iconWarning();
//                        }

                        function_response_20002(serverCode, serverMessage, addLogUpLoadInfo, true);

                    }
                })).subscribe(new Consumer<String>() {
                    @Override
                    public void accept(String stringValue) throws Throwable {

                        //TipDialog.show(StringUtils.getString(R.string.add_submit_success), WaitDialog.TYPE.SUCCESS);

                        // TODO: 2024/2/29 19:39 主要的通知列表刷新和详情的刷新。
                        EventCardMain eventCardMain = new EventCardMain();
                        eventCardMain.setMessage(ExtraValue.EVENTBUS_EVENT_TO_REFRESH_CARD_MAIN_LIST);
                        EventBus.getDefault().post(eventCardMain);

                        methodSubmitSuccess(mActivityInstance, new DoSomeThingListener() {
                            @Override
                            public void doSomeThing() {

                                //当前页面自己的刷新,变动状态
                                gainDatas();

                            }

                        });
                    }
                }, new ErrorConsumer() {

                    @Override
                    protected void error(ApiException apiException) {
                        function_apiException(apiException);
                    }
                });
    }


    @Override
    protected void methodBack() {

        methodBackFinish();

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

        if (extra_couponCustomerVoCopy != null) {
            extra_couponCustomerVoCopy = null;
        }

        CommUtils.checkBasePopupView(mAlertBasePopupView);
        CommUtils.checkMaterialDialog(materialDialogCustomView);

    }

    @Override
    public void processExtraData() {

        //use the data received here
        Bundle bundle = this.getIntent().getExtras();

        if (bundle != null) {

            //"auditStatus": 0, //审核状态 0：待审核 1：审核通过 2：审核不通过[已驳回]
            //主要判断 是【审核通过】过来的，还是【已核销】过来的
            flag_jumpfrom_where = bundle.getInt(ExtraKey.EXTRA_JUMPFROM_WHERE);
            LogUtils.d(ConstantSign.LOGCAT_NOMAL + "extra_jumpfrom_where-->" + flag_jumpfrom_where);

            extra_couponCustomerVoCopy = bundle.getParcelable(ExtraKey.EXTRA_COUPONCUSTOMERVO_COPY);

            LogUtils.json(ConstantSign.LOGCAT_NOMAL, extra_couponCustomerVoCopy);

        }


    }
}